;(function($){

       var Tab =function (tab) {
       var _this_ =this;
       this.tab  = tab;
       // console.log(this.tab)
       //默认配置参数
       this.config={
           "triggerType" :"mouseover",
           //effect 指定画面进来时的动画样式
           "effect":"fade",
           "invoke":1,
           //自动切换的时间间隔auto
           "auto":false
       };
        //如果人工设置的配置参数存在，则替换掉/扩展掉默认的配置参数
       if(this.getConfig){
           $.extend(this.config,this.getConfig());
       };
        console.log(this.config);
        this.tabItems =this.tab.find("ul.tab-nav li");
        this.contentItems =this.tab.find("div.content-wrap div.content-item");
        var config =this.config;
        if(config.triggerType ==="click"){
            this.tabItems.bind(config.triggerType,function () {
                _this_.invoke($(this));

            })
        }else if(config.triggerType ==="mouseover"||config.triggerType !="click"){
            // this.tabItems.mouseover(function () {
            //     // _this_.invoke($(this));/*2中方式，一个是直接传入this 第二个就是做一个延迟定时器*/
            // // })
            //     var self =$(this);
            //     this.timer =window.setTimeout(function () {
            //         _this_.invoke(self);
            //
            //     },300);
            //
            // }).mouseout(function () {
            //     window.clearTimeout(this.timer);
            //
            //
            // })
            this.tabItems.bind(config.triggerType,function () {
                _this_.invoke($(this));

            })
            } ;

               if (config.auto){
               this.timer =null;
               this.count =0;
               this.autoPlay();
               this.tab.hover(function () {
                   window.clearInterval(_this_.timer);

               },function () {
                   _this_.autoPlay()
               })
               };
               //设置默认显示第几个li
           if(config.invoke){
               this.invoke(this.tabItems.eq(config.invoke-1))
           }
            };
    Tab.prototype ={
        autoPlay:function () {
            var _this_  =this;
            tabItems    =this.tabItems;
            tabLength   =tabItems.length;
            config      =this.config;
            this.timer=window.setInterval(function () {
                _this_.count++;
                if(_this_.count>=tabLength){
                    _this_.count=0;
                }
                tabItems.eq(_this_.count).trigger(config.triggerType);
                // if (_this_.config.auto) {
                //     tabItems.eq(_this_.count).trigger("mouseout");
                // }
            },config.auto);
        },
        invoke:function (currentTab) {
            var _this_ = this;
            var index = currentTab.index();

            currentTab.addClass("active").siblings().removeClass("active");
            var effect = this.config.effect;
            var conItems = this.contentItems;
            if (effect === "default" || effect != "fade") {

                conItems.eq(index).addClass("current").siblings().removeClass("current");
            } else if (effect === "fade") {
                conItems.eq(index).fadeIn(200).siblings().fadeOut(200);
            }
            if (this.config.auto) {
                this.count = index;
            }
        },


        getConfig :function () {
            var config =this.tab.attr("data-config");
            // console.log(this)

          if(config&&config!=""){
              return $.parseJSON(config);

          }else{
              return null;

          }
        }


    };
    window.Tab =Tab;

})(jQuery);